import list.CircleLinkedList;
import list.List;

/**
 * @author 陈艺博
 * @date 2021-02-24 20:28
 * @description 队列 先进先出FIFO
 **/
public class Queue<E> {

    private List<E> list = new CircleLinkedList<E>();

    public int size() {
        return list.size();
    }

    public boolean isEmpty() {
        return list.isEmpty();
    }

    /**
     * 入队,元素添加到队尾（rear）
     *
     * @param element 元素
     */
    public void enqueue(E element) {
        list.add(element);
    }

    /**
     * 出队
     *
     * @return 队头（front）元素
     */
    public E deQueue() {
        return list.remove(0);
    }

    /**
     * 获取队头元素
     *
     * @return 对头元素
     */
    public E front() {
        return list.get(0);
    }
}
